{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "# Recurrent Neural Networks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Univariate Time Series Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "This notebook demonstrates how to forecast the S&P 500 index using a Recurrent Neural Network."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Run inside docker container for GPU acceleration"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "See [tensorflow guide](https://www.tensorflow.org/install/docker) and more detailed [instructions](https://blog.sicara.com/tensorflow-gpu-opencv-jupyter-docker-10705b6cd1d)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`docker run -it -p 8889:8888 -v /path/to/machine-learning-for-trading/18_recurrent_neural_nets:/rnn --name tensorflow tensorflow/tensorflow:latest-gpu-py3 bash`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Inside docker container: \n",
    "`jupyter notebook --ip 0.0.0.0 --no-browser --allow-root`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Imports & Settings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import pandas_datareader.data as web\n",
    "from datetime import datetime, date\n",
    "from sklearn.metrics import mean_squared_error, roc_auc_score\n",
    "from sklearn.preprocessing import minmax_scale\n",
    "from keras.callbacks import ModelCheckpoint, EarlyStopping\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense, LSTM\n",
    "import keras"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "sns.set_style('whitegrid')\n",
    "np.random.seed(42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Get Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "We obtain data for 2010-2018 from the Federal Reserve Bank’s Data Service [FRED](https://fred.stlouisfed.org/) using the [pandas_datareader](https://pandas-datareader.readthedocs.io/) library in introduced in [Chapter 2 on Market and Fundamental Data](../02_market_and_fundamental_data)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 2264 entries, 2010-01-04 to 2018-12-31\n",
      "Data columns (total 1 columns):\n",
      "SP500    2264 non-null float64\n",
      "dtypes: float64(1)\n",
      "memory usage: 35.4 KB\n"
     ]
    }
   ],
   "source": [
    "sp500 = web.DataReader('SP500', 'fred', start='2010', end='2019').dropna()\n",
    "sp500.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SP500</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>2264.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.437175</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.272843</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.172811</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.462480</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.600596</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             SP500\n",
       "count  2264.000000\n",
       "mean      0.437175\n",
       "std       0.272843\n",
       "min       0.000000\n",
       "25%       0.172811\n",
       "50%       0.462480\n",
       "75%       0.600596\n",
       "max       1.000000"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sp500_scaled = sp500.apply(minmax_scale)\n",
    "sp500_scaled.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Generating recurrent sequences from our time series\n",
    "\n",
    "Our time series is a sequence of numbers indexed by time:\n",
    "\n",
    "$$x_{0},x_{1},x_{2},...,x_{T}$$\n",
    "\n",
    "where $\\{x_t\\}$ is the numerical value in period $t$ and  $T$ is the total length of the series. \n",
    "\n",
    "To apply a RNN for regression of classification, we use a sliding window to construct a rolling set of input/output pairs for our model to learn from as animated below.\n",
    "\n",
    "<img src=\"images/timeseries_windowing.gif\" width=600 height=600/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "We will generate sequences of 63 trading days, approximately three months, and use a single LSTM layer with 20 hidden units to predict the index value one timestep ahead. \n",
    "The input to every LSTM layer must have three dimensions, namely:\n",
    "- **Samples**: One sequence is one sample. A batch contains one or more samples.\n",
    "- **Time Steps**: One time step is one point of observation in the sample.\n",
    "- **Features**: One feature is one observation at a time step.\n",
    "\n",
    "Our S&P 500 sample has 2,264 observations or time steps. We will create overlapping sequences using a window of 63 observations each.\n",
    "For a simpler window of size T = 5, we obtain input-output pairs as shown in the following table:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "$$\\begin{array}{c|c}\n",
    "\\text{Input} & \\text{Output}\\\\\n",
    "\\hline  {\\langle x_1,x_2,x_3,x_4,x_5\\rangle} & { x_6} \\\\\n",
    "\\ {\\langle x_{2},x_{3},x_{4},x_{5},x_{6} \\rangle } & {x_{7} } \\\\\n",
    "  {\\vdots} & {\\vdots}\\\\\n",
    " { \\langle x_{T-5},x_{T-4},x_{T-3},x_{T-2},x_{T-1} \\rangle } &  {x_{T}}\n",
    "\\end{array}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "Generally speaking, for window size S, the relationship takes the form \n",
    "\n",
    "$$x_t = f( x_{t-1}, x_{t-2}, ..., x_{t-S}) \\quad\\forall t=S, S+1, ..., T$$\n",
    "\n",
    "Each of the $T-S$ lagged input sequence or vector is of length S with a corresponding scalar output."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "We can use the function create_univariate_rnn_data() to stack sequences selected using a rolling windows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "def create_univariate_rnn_data(data, window_size):\n",
    "    y = data[window_size:]\n",
    "    data = data.values.reshape(-1, 1) # make 2D\n",
    "    n = data.shape[0]\n",
    "    X = np.hstack(tuple([data[i: n-j, :] for i, j in enumerate(range(window_size, 0, -1))]))\n",
    "    return pd.DataFrame(X, index=y.index), y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "We apply this function to the rescaled stock index for a window_size=63 to obtain a two-dimensional dataset of shape number of samples x number of timesteps:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "window_size = 63"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "X, y = create_univariate_rnn_data(sp500_scaled, window_size=window_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>53</th>\n",
       "      <th>54</th>\n",
       "      <th>55</th>\n",
       "      <th>56</th>\n",
       "      <th>57</th>\n",
       "      <th>58</th>\n",
       "      <th>59</th>\n",
       "      <th>60</th>\n",
       "      <th>61</th>\n",
       "      <th>62</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DATE</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-04-06</th>\n",
       "      <td>0.057862</td>\n",
       "      <td>0.059712</td>\n",
       "      <td>0.060037</td>\n",
       "      <td>0.062421</td>\n",
       "      <td>0.064145</td>\n",
       "      <td>0.065193</td>\n",
       "      <td>0.059554</td>\n",
       "      <td>0.064512</td>\n",
       "      <td>0.065969</td>\n",
       "      <td>0.059455</td>\n",
       "      <td>...</td>\n",
       "      <td>0.075061</td>\n",
       "      <td>0.079443</td>\n",
       "      <td>0.076062</td>\n",
       "      <td>0.075020</td>\n",
       "      <td>0.075470</td>\n",
       "      <td>0.078945</td>\n",
       "      <td>0.078971</td>\n",
       "      <td>0.076959</td>\n",
       "      <td>0.081502</td>\n",
       "      <td>0.086397</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-07</th>\n",
       "      <td>0.059712</td>\n",
       "      <td>0.060037</td>\n",
       "      <td>0.062421</td>\n",
       "      <td>0.064145</td>\n",
       "      <td>0.065193</td>\n",
       "      <td>0.059554</td>\n",
       "      <td>0.064512</td>\n",
       "      <td>0.065969</td>\n",
       "      <td>0.059455</td>\n",
       "      <td>0.066897</td>\n",
       "      <td>...</td>\n",
       "      <td>0.079443</td>\n",
       "      <td>0.076062</td>\n",
       "      <td>0.075020</td>\n",
       "      <td>0.075470</td>\n",
       "      <td>0.078945</td>\n",
       "      <td>0.078971</td>\n",
       "      <td>0.076959</td>\n",
       "      <td>0.081502</td>\n",
       "      <td>0.086397</td>\n",
       "      <td>0.087445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-08</th>\n",
       "      <td>0.060037</td>\n",
       "      <td>0.062421</td>\n",
       "      <td>0.064145</td>\n",
       "      <td>0.065193</td>\n",
       "      <td>0.059554</td>\n",
       "      <td>0.064512</td>\n",
       "      <td>0.065969</td>\n",
       "      <td>0.059455</td>\n",
       "      <td>0.066897</td>\n",
       "      <td>0.060508</td>\n",
       "      <td>...</td>\n",
       "      <td>0.076062</td>\n",
       "      <td>0.075020</td>\n",
       "      <td>0.075470</td>\n",
       "      <td>0.078945</td>\n",
       "      <td>0.078971</td>\n",
       "      <td>0.076959</td>\n",
       "      <td>0.081502</td>\n",
       "      <td>0.086397</td>\n",
       "      <td>0.087445</td>\n",
       "      <td>0.083782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-09</th>\n",
       "      <td>0.062421</td>\n",
       "      <td>0.064145</td>\n",
       "      <td>0.065193</td>\n",
       "      <td>0.059554</td>\n",
       "      <td>0.064512</td>\n",
       "      <td>0.065969</td>\n",
       "      <td>0.059455</td>\n",
       "      <td>0.066897</td>\n",
       "      <td>0.060508</td>\n",
       "      <td>0.049209</td>\n",
       "      <td>...</td>\n",
       "      <td>0.075020</td>\n",
       "      <td>0.075470</td>\n",
       "      <td>0.078945</td>\n",
       "      <td>0.078971</td>\n",
       "      <td>0.076959</td>\n",
       "      <td>0.081502</td>\n",
       "      <td>0.086397</td>\n",
       "      <td>0.087445</td>\n",
       "      <td>0.083782</td>\n",
       "      <td>0.085873</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-12</th>\n",
       "      <td>0.064145</td>\n",
       "      <td>0.065193</td>\n",
       "      <td>0.059554</td>\n",
       "      <td>0.064512</td>\n",
       "      <td>0.065969</td>\n",
       "      <td>0.059455</td>\n",
       "      <td>0.066897</td>\n",
       "      <td>0.060508</td>\n",
       "      <td>0.049209</td>\n",
       "      <td>0.036255</td>\n",
       "      <td>...</td>\n",
       "      <td>0.075470</td>\n",
       "      <td>0.078945</td>\n",
       "      <td>0.078971</td>\n",
       "      <td>0.076959</td>\n",
       "      <td>0.081502</td>\n",
       "      <td>0.086397</td>\n",
       "      <td>0.087445</td>\n",
       "      <td>0.083782</td>\n",
       "      <td>0.085873</td>\n",
       "      <td>0.090029</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 63 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                  0         1         2         3         4         5   \\\n",
       "DATE                                                                     \n",
       "2010-04-06  0.057862  0.059712  0.060037  0.062421  0.064145  0.065193   \n",
       "2010-04-07  0.059712  0.060037  0.062421  0.064145  0.065193  0.059554   \n",
       "2010-04-08  0.060037  0.062421  0.064145  0.065193  0.059554  0.064512   \n",
       "2010-04-09  0.062421  0.064145  0.065193  0.059554  0.064512  0.065969   \n",
       "2010-04-12  0.064145  0.065193  0.059554  0.064512  0.065969  0.059455   \n",
       "\n",
       "                  6         7         8         9   ...        53        54  \\\n",
       "DATE                                                ...                       \n",
       "2010-04-06  0.059554  0.064512  0.065969  0.059455  ...  0.075061  0.079443   \n",
       "2010-04-07  0.064512  0.065969  0.059455  0.066897  ...  0.079443  0.076062   \n",
       "2010-04-08  0.065969  0.059455  0.066897  0.060508  ...  0.076062  0.075020   \n",
       "2010-04-09  0.059455  0.066897  0.060508  0.049209  ...  0.075020  0.075470   \n",
       "2010-04-12  0.066897  0.060508  0.049209  0.036255  ...  0.075470  0.078945   \n",
       "\n",
       "                  55        56        57        58        59        60  \\\n",
       "DATE                                                                     \n",
       "2010-04-06  0.076062  0.075020  0.075470  0.078945  0.078971  0.076959   \n",
       "2010-04-07  0.075020  0.075470  0.078945  0.078971  0.076959  0.081502   \n",
       "2010-04-08  0.075470  0.078945  0.078971  0.076959  0.081502  0.086397   \n",
       "2010-04-09  0.078945  0.078971  0.076959  0.081502  0.086397  0.087445   \n",
       "2010-04-12  0.078971  0.076959  0.081502  0.086397  0.087445  0.083782   \n",
       "\n",
       "                  61        62  \n",
       "DATE                            \n",
       "2010-04-06  0.081502  0.086397  \n",
       "2010-04-07  0.086397  0.087445  \n",
       "2010-04-08  0.087445  0.083782  \n",
       "2010-04-09  0.083782  0.085873  \n",
       "2010-04-12  0.085873  0.090029  \n",
       "\n",
       "[5 rows x 63 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SP500</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DATE</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-04-06</th>\n",
       "      <td>0.087445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-07</th>\n",
       "      <td>0.083782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-08</th>\n",
       "      <td>0.085873</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-09</th>\n",
       "      <td>0.090029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010-04-12</th>\n",
       "      <td>0.091134</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               SP500\n",
       "DATE                \n",
       "2010-04-06  0.087445\n",
       "2010-04-07  0.083782\n",
       "2010-04-08  0.085873\n",
       "2010-04-09  0.090029\n",
       "2010-04-12  0.091134"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2201, 63)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 2201 entries, 2010-04-06 to 2018-12-31\n",
      "Data columns (total 63 columns):\n",
      "0     2201 non-null float64\n",
      "1     2201 non-null float64\n",
      "2     2201 non-null float64\n",
      "3     2201 non-null float64\n",
      "4     2201 non-null float64\n",
      "5     2201 non-null float64\n",
      "6     2201 non-null float64\n",
      "7     2201 non-null float64\n",
      "8     2201 non-null float64\n",
      "9     2201 non-null float64\n",
      "10    2201 non-null float64\n",
      "11    2201 non-null float64\n",
      "12    2201 non-null float64\n",
      "13    2201 non-null float64\n",
      "14    2201 non-null float64\n",
      "15    2201 non-null float64\n",
      "16    2201 non-null float64\n",
      "17    2201 non-null float64\n",
      "18    2201 non-null float64\n",
      "19    2201 non-null float64\n",
      "20    2201 non-null float64\n",
      "21    2201 non-null float64\n",
      "22    2201 non-null float64\n",
      "23    2201 non-null float64\n",
      "24    2201 non-null float64\n",
      "25    2201 non-null float64\n",
      "26    2201 non-null float64\n",
      "27    2201 non-null float64\n",
      "28    2201 non-null float64\n",
      "29    2201 non-null float64\n",
      "30    2201 non-null float64\n",
      "31    2201 non-null float64\n",
      "32    2201 non-null float64\n",
      "33    2201 non-null float64\n",
      "34    2201 non-null float64\n",
      "35    2201 non-null float64\n",
      "36    2201 non-null float64\n",
      "37    2201 non-null float64\n",
      "38    2201 non-null float64\n",
      "39    2201 non-null float64\n",
      "40    2201 non-null float64\n",
      "41    2201 non-null float64\n",
      "42    2201 non-null float64\n",
      "43    2201 non-null float64\n",
      "44    2201 non-null float64\n",
      "45    2201 non-null float64\n",
      "46    2201 non-null float64\n",
      "47    2201 non-null float64\n",
      "48    2201 non-null float64\n",
      "49    2201 non-null float64\n",
      "50    2201 non-null float64\n",
      "51    2201 non-null float64\n",
      "52    2201 non-null float64\n",
      "53    2201 non-null float64\n",
      "54    2201 non-null float64\n",
      "55    2201 non-null float64\n",
      "56    2201 non-null float64\n",
      "57    2201 non-null float64\n",
      "58    2201 non-null float64\n",
      "59    2201 non-null float64\n",
      "60    2201 non-null float64\n",
      "61    2201 non-null float64\n",
      "62    2201 non-null float64\n",
      "dtypes: float64(63)\n",
      "memory usage: 1.1 MB\n"
     ]
    }
   ],
   "source": [
    "X.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Train-test split\n",
    "\n",
    "To respect the time series nature of the data, we set aside the data at the end of the sample as hold-out or test set. More specifically, we'll use the data for 2018."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sp500_scaled.plot(lw=2);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "X_train = X[:'2017'].values.reshape(-1, window_size, 1)\n",
    "y_train = y[:'2017']\n",
    "\n",
    "# keep the last year for testing\n",
    "X_test = X['2018'].values.reshape(-1, window_size, 1)\n",
    "y_test = y['2018']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "n_obs, window_size, n_features = X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1950, 1)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Keras LSTM Layer"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "Keras has several built-in RNN layers with various configuration options described in detail in the [documentation](https://keras.io/layers/recurrent/)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "LSTM(units, \n",
    "      activation='tanh', \n",
    "      recurrent_activation='hard_sigmoid', \n",
    "      use_bias=True,\n",
    "      kernel_initializer='glorot_uniform', \n",
    "      recurrent_initializer='orthogonal', \n",
    "      bias_initializer='zeros',\n",
    "      unit_forget_bias=True, \n",
    "      kernel_regularizer=None, \n",
    "      recurrent_regularizer=None, \n",
    "      bias_regularizer=None,\n",
    "      activity_regularizer=None, \n",
    "      kernel_constraint=None, \n",
    "      recurrent_constraint=None, \n",
    "      bias_constraint=None,\n",
    "      dropout=0.0, \n",
    "      recurrent_dropout=0.0, \n",
    "      implementation=1, \n",
    "      return_sequences=False, \n",
    "      return_state=False,\n",
    "      go_backwards=False, \n",
    "      stateful=False, \n",
    "      unroll=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "##  Define the Model Architecture\n",
    "\n",
    "Having created input/output pairs out of our time series and cut this into training/testing sets, we can now begin setting up our RNN.  We use Keras to quickly build a two hidden layer RNN of the following specifications\n",
    "\n",
    "- layer 1 uses an LSTM module with 20 hidden units (note here the input_shape = (window_size,1))\n",
    "- layer 2 uses a fully connected module with one unit\n",
    "- the 'mean_squared_error' loss should be used (remember: we are performing regression here)\n",
    "\n",
    "This can be constructed using just a few lines - see e.g., the [general Keras documentation](https://keras.io/getting-started/sequential-model-guide/) and the [LTSM documentation in particular](https://keras.io/layers/recurrent/) for examples of how to quickly use Keras to build neural network models.  Make sure you are initializing your optimizer given the [keras-recommended approach for RNNs](https://keras.io/optimizers/) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /home/stefan/.pyenv/versions/miniconda3-latest/envs/ml4t/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n"
     ]
    }
   ],
   "source": [
    "rnn = Sequential([\n",
    "    LSTM(units=20, \n",
    "         input_shape=(window_size, n_features), name='LSTM'),\n",
    "    Dense(1, name='Output')\n",
    "])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "The summary shows that the model has 1,781 parameters:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "pycharm": {},
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "LSTM (LSTM)                  (None, 20)                1760      \n",
      "_________________________________________________________________\n",
      "Output (Dense)               (None, 1)                 21        \n",
      "=================================================================\n",
      "Total params: 1,781\n",
      "Trainable params: 1,781\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "rnn.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Train the Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "We train the model using the RMSProp optimizer recommended for RNN with default settings and compile the model with mean squared error for this regression problem:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "optimizer = keras.optimizers.RMSprop(lr=0.001,\n",
    "                                     rho=0.9,\n",
    "                                     epsilon=1e-08,\n",
    "                                     decay=0.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "rnn.compile(loss='mean_squared_error', optimizer=optimizer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "rnn_path = 'models/sp500.lstm5.weights.best.hdf5'\n",
    "checkpointer = ModelCheckpoint(filepath=rnn_path,\n",
    "                              monitor='val_loss',\n",
    "                              save_best_only=True,\n",
    "                              save_weights_only=True,\n",
    "                              period=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "We define an EarlyStopping callback and train the model for 500 episodes. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "early_stopping = EarlyStopping(monitor='val_loss', \n",
    "                              patience=25,\n",
    "                              restore_best_weights=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "pycharm": {},
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /home/stefan/.pyenv/versions/miniconda3-latest/envs/ml4t/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Train on 1950 samples, validate on 251 samples\n",
      "Epoch 1/500\n",
      "1950/1950 [==============================] - 4s 2ms/step - loss: 0.0259 - val_loss: 0.0022\n",
      "Epoch 2/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 6.4320e-04 - val_loss: 0.0014\n",
      "Epoch 3/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 4.0963e-04 - val_loss: 0.0043\n",
      "Epoch 4/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 3.6222e-04 - val_loss: 8.3634e-04\n",
      "Epoch 5/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 3.2014e-04 - val_loss: 0.0017\n",
      "Epoch 6/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.8507e-04 - val_loss: 6.9610e-04\n",
      "Epoch 7/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.7760e-04 - val_loss: 6.6384e-04\n",
      "Epoch 8/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.5975e-04 - val_loss: 6.3310e-04\n",
      "Epoch 9/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.4940e-04 - val_loss: 6.0271e-04\n",
      "Epoch 10/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.3685e-04 - val_loss: 8.4301e-04\n",
      "Epoch 11/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.2719e-04 - val_loss: 7.6135e-04\n",
      "Epoch 12/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.1947e-04 - val_loss: 0.0019\n",
      "Epoch 13/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 2.1333e-04 - val_loss: 5.3785e-04\n",
      "Epoch 14/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 2.0020e-04 - val_loss: 6.2005e-04\n",
      "Epoch 15/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.8950e-04 - val_loss: 0.0015\n",
      "Epoch 16/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.8961e-04 - val_loss: 5.1533e-04\n",
      "Epoch 17/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 1.8438e-04 - val_loss: 4.3401e-04\n",
      "Epoch 18/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 1.7802e-04 - val_loss: 0.0017\n",
      "Epoch 19/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.7023e-04 - val_loss: 4.1096e-04\n",
      "Epoch 20/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.6940e-04 - val_loss: 7.7811e-04\n",
      "Epoch 21/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.6567e-04 - val_loss: 4.2575e-04\n",
      "Epoch 22/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.6778e-04 - val_loss: 5.9410e-04\n",
      "Epoch 23/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.6142e-04 - val_loss: 3.4634e-04\n",
      "Epoch 24/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.5385e-04 - val_loss: 3.3708e-04\n",
      "Epoch 25/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 1.5047e-04 - val_loss: 3.5181e-04\n",
      "Epoch 26/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.5033e-04 - val_loss: 4.0619e-04\n",
      "Epoch 27/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 1.4270e-04 - val_loss: 4.9892e-04\n",
      "Epoch 28/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 1.4054e-04 - val_loss: 5.5422e-04\n",
      "Epoch 29/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.4403e-04 - val_loss: 3.2917e-04\n",
      "Epoch 30/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.3060e-04 - val_loss: 3.1522e-04\n",
      "Epoch 31/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.3969e-04 - val_loss: 3.8150e-04\n",
      "Epoch 32/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.2551e-04 - val_loss: 3.9315e-04\n",
      "Epoch 33/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.2725e-04 - val_loss: 3.1077e-04\n",
      "Epoch 34/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.3154e-04 - val_loss: 9.7449e-04\n",
      "Epoch 35/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.2289e-04 - val_loss: 6.6856e-04\n",
      "Epoch 36/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.2949e-04 - val_loss: 3.7870e-04\n",
      "Epoch 37/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.2081e-04 - val_loss: 2.8874e-04\n",
      "Epoch 38/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.1083e-04 - val_loss: 3.3363e-04\n",
      "Epoch 39/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.1815e-04 - val_loss: 2.8503e-04\n",
      "Epoch 40/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.1974e-04 - val_loss: 2.7384e-04\n",
      "Epoch 41/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.1099e-04 - val_loss: 2.7397e-04\n",
      "Epoch 42/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 1.1578e-04 - val_loss: 3.0450e-04\n",
      "Epoch 43/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.1036e-04 - val_loss: 3.4770e-04\n",
      "Epoch 44/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0236e-04 - val_loss: 6.2072e-04\n",
      "Epoch 45/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.1311e-04 - val_loss: 3.3050e-04\n",
      "Epoch 46/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0739e-04 - val_loss: 4.8290e-04\n",
      "Epoch 47/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0477e-04 - val_loss: 2.8105e-04\n",
      "Epoch 48/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.9790e-05 - val_loss: 2.6678e-04\n",
      "Epoch 49/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0286e-04 - val_loss: 4.1710e-04\n",
      "Epoch 50/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0573e-04 - val_loss: 3.1239e-04\n",
      "Epoch 51/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0260e-04 - val_loss: 2.6442e-04\n",
      "Epoch 52/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0153e-04 - val_loss: 9.4587e-04\n",
      "Epoch 53/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0048e-04 - val_loss: 4.5468e-04\n",
      "Epoch 54/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.6916e-05 - val_loss: 2.6880e-04\n",
      "Epoch 55/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 1.0439e-04 - val_loss: 4.1931e-04\n",
      "Epoch 56/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.7635e-05 - val_loss: 3.1589e-04\n",
      "Epoch 57/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.4119e-05 - val_loss: 3.1625e-04\n",
      "Epoch 58/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.5449e-05 - val_loss: 4.9882e-04\n",
      "Epoch 59/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.6122e-05 - val_loss: 2.7764e-04\n",
      "Epoch 60/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.4437e-05 - val_loss: 2.6602e-04\n",
      "Epoch 61/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.2302e-05 - val_loss: 5.5054e-04\n",
      "Epoch 62/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.6147e-05 - val_loss: 2.4944e-04\n",
      "Epoch 63/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.0018e-05 - val_loss: 4.9056e-04\n",
      "Epoch 64/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.7334e-05 - val_loss: 3.5986e-04\n",
      "Epoch 65/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.9901e-05 - val_loss: 2.6305e-04\n",
      "Epoch 66/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.3220e-05 - val_loss: 3.1781e-04\n",
      "Epoch 67/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.3404e-05 - val_loss: 5.4133e-04\n",
      "Epoch 68/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.1018e-05 - val_loss: 3.5198e-04\n",
      "Epoch 69/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.1941e-05 - val_loss: 2.3394e-04\n",
      "Epoch 70/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.8822e-05 - val_loss: 3.5617e-04\n",
      "Epoch 71/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.8030e-05 - val_loss: 3.9396e-04\n",
      "Epoch 72/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.5764e-05 - val_loss: 6.6562e-04\n",
      "Epoch 73/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.5432e-05 - val_loss: 4.6716e-04\n",
      "Epoch 74/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.7653e-05 - val_loss: 2.4659e-04\n",
      "Epoch 75/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9781e-05 - val_loss: 2.3857e-04\n",
      "Epoch 76/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.8396e-05 - val_loss: 3.5092e-04\n",
      "Epoch 77/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.5004e-05 - val_loss: 2.3115e-04\n",
      "Epoch 78/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 9.1321e-05 - val_loss: 4.1456e-04\n",
      "Epoch 79/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.7536e-05 - val_loss: 3.9532e-04\n",
      "Epoch 80/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.7761e-05 - val_loss: 4.0047e-04\n",
      "Epoch 81/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.6047e-05 - val_loss: 2.3446e-04\n",
      "Epoch 82/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.0903e-05 - val_loss: 5.7490e-04\n",
      "Epoch 83/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.5997e-05 - val_loss: 3.4693e-04\n",
      "Epoch 84/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.4650e-05 - val_loss: 2.4621e-04\n",
      "Epoch 85/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.4828e-05 - val_loss: 7.6684e-04\n",
      "Epoch 86/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.4825e-05 - val_loss: 2.4294e-04\n",
      "Epoch 87/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2162e-05 - val_loss: 2.8051e-04\n",
      "Epoch 88/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.7945e-05 - val_loss: 2.9734e-04\n",
      "Epoch 89/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.4162e-05 - val_loss: 2.3595e-04\n",
      "Epoch 90/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.5688e-05 - val_loss: 2.2958e-04\n",
      "Epoch 91/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.3299e-05 - val_loss: 4.1246e-04\n",
      "Epoch 92/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.0612e-05 - val_loss: 8.1742e-04\n",
      "Epoch 93/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.6531e-05 - val_loss: 3.3606e-04\n",
      "Epoch 94/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.4190e-05 - val_loss: 2.5197e-04\n",
      "Epoch 95/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2990e-05 - val_loss: 2.9431e-04\n",
      "Epoch 96/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2887e-05 - val_loss: 2.3025e-04\n",
      "Epoch 97/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2982e-05 - val_loss: 3.2498e-04\n",
      "Epoch 98/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.4710e-05 - val_loss: 2.5490e-04\n",
      "Epoch 99/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2775e-05 - val_loss: 2.6047e-04\n",
      "Epoch 100/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.3247e-05 - val_loss: 3.5049e-04\n",
      "Epoch 101/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2596e-05 - val_loss: 2.5096e-04\n",
      "Epoch 102/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2268e-05 - val_loss: 3.7958e-04\n",
      "Epoch 103/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.3137e-05 - val_loss: 2.2946e-04\n",
      "Epoch 104/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2451e-05 - val_loss: 2.6558e-04\n",
      "Epoch 105/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1882e-05 - val_loss: 2.2816e-04\n",
      "Epoch 106/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.3570e-05 - val_loss: 2.3123e-04\n",
      "Epoch 107/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8835e-05 - val_loss: 3.5646e-04\n",
      "Epoch 108/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9922e-05 - val_loss: 2.5957e-04\n",
      "Epoch 109/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 8.0363e-05 - val_loss: 3.6044e-04\n",
      "Epoch 110/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.3008e-05 - val_loss: 2.4002e-04\n",
      "Epoch 111/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1985e-05 - val_loss: 6.5130e-04\n",
      "Epoch 112/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1532e-05 - val_loss: 2.3963e-04\n",
      "Epoch 113/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1931e-05 - val_loss: 2.5075e-04\n",
      "Epoch 114/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1507e-05 - val_loss: 2.2866e-04\n",
      "Epoch 115/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.0922e-05 - val_loss: 2.2727e-04\n",
      "Epoch 116/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1009e-05 - val_loss: 4.5465e-04\n",
      "Epoch 117/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7969e-05 - val_loss: 4.4201e-04\n",
      "Epoch 118/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9101e-05 - val_loss: 2.6725e-04\n",
      "Epoch 119/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9465e-05 - val_loss: 4.1787e-04\n",
      "Epoch 120/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.3085e-05 - val_loss: 3.0253e-04\n",
      "Epoch 121/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.0912e-05 - val_loss: 2.3440e-04\n",
      "Epoch 122/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 8.2004e-05 - val_loss: 5.3592e-04\n",
      "Epoch 123/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 8.2487e-05 - val_loss: 2.6276e-04\n",
      "Epoch 124/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7115e-05 - val_loss: 3.0590e-04\n",
      "Epoch 125/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 8.4017e-05 - val_loss: 5.3031e-04\n",
      "Epoch 126/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1123e-05 - val_loss: 4.2408e-04\n",
      "Epoch 127/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9488e-05 - val_loss: 3.7248e-04\n",
      "Epoch 128/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.3095e-05 - val_loss: 2.2539e-04\n",
      "Epoch 129/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7840e-05 - val_loss: 4.3200e-04\n",
      "Epoch 130/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1818e-05 - val_loss: 2.3462e-04\n",
      "Epoch 131/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9268e-05 - val_loss: 3.3856e-04\n",
      "Epoch 132/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.6852e-05 - val_loss: 2.4157e-04\n",
      "Epoch 133/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9114e-05 - val_loss: 2.4436e-04\n",
      "Epoch 134/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9573e-05 - val_loss: 3.5230e-04\n",
      "Epoch 135/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.0803e-05 - val_loss: 2.8551e-04\n",
      "Epoch 136/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8001e-05 - val_loss: 2.2527e-04\n",
      "Epoch 137/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.6306e-05 - val_loss: 2.4812e-04\n",
      "Epoch 138/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9999e-05 - val_loss: 2.9246e-04\n",
      "Epoch 139/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8573e-05 - val_loss: 2.2760e-04\n",
      "Epoch 140/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8896e-05 - val_loss: 3.0829e-04\n",
      "Epoch 141/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8071e-05 - val_loss: 2.9816e-04\n",
      "Epoch 142/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.1856e-05 - val_loss: 3.2728e-04\n",
      "Epoch 143/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.0268e-05 - val_loss: 6.5046e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 144/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7013e-05 - val_loss: 6.2298e-04\n",
      "Epoch 145/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8551e-05 - val_loss: 6.0778e-04\n",
      "Epoch 146/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 7.8303e-05 - val_loss: 6.7426e-04\n",
      "Epoch 147/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.5538e-05 - val_loss: 2.2505e-04\n",
      "Epoch 148/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 8.2132e-05 - val_loss: 2.3028e-04\n",
      "Epoch 149/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.6928e-05 - val_loss: 2.2649e-04\n",
      "Epoch 150/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8825e-05 - val_loss: 2.6291e-04\n",
      "Epoch 151/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.9428e-05 - val_loss: 2.3031e-04\n",
      "Epoch 152/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7981e-05 - val_loss: 2.2469e-04\n",
      "Epoch 153/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8535e-05 - val_loss: 3.3456e-04\n",
      "Epoch 154/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 7.5944e-05 - val_loss: 2.2601e-04\n",
      "Epoch 155/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7516e-05 - val_loss: 2.2957e-04\n",
      "Epoch 156/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8716e-05 - val_loss: 2.5327e-04\n",
      "Epoch 157/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 7.5919e-05 - val_loss: 3.3461e-04\n",
      "Epoch 158/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7729e-05 - val_loss: 3.8942e-04\n",
      "Epoch 159/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 7.9647e-05 - val_loss: 2.2755e-04\n",
      "Epoch 160/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 7.7441e-05 - val_loss: 2.2691e-04\n",
      "Epoch 161/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8661e-05 - val_loss: 2.2745e-04\n",
      "Epoch 162/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.5917e-05 - val_loss: 2.2520e-04\n",
      "Epoch 163/500\n",
      "1950/1950 [==============================] - 3s 2ms/step - loss: 7.9040e-05 - val_loss: 2.2528e-04\n",
      "Epoch 164/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7964e-05 - val_loss: 2.3334e-04\n",
      "Epoch 165/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.4630e-05 - val_loss: 4.4796e-04\n",
      "Epoch 166/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8689e-05 - val_loss: 4.2133e-04\n",
      "Epoch 167/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7186e-05 - val_loss: 3.9237e-04\n",
      "Epoch 168/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.4509e-05 - val_loss: 4.4618e-04\n",
      "Epoch 169/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7624e-05 - val_loss: 3.2093e-04\n",
      "Epoch 170/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7089e-05 - val_loss: 3.3168e-04\n",
      "Epoch 171/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.6876e-05 - val_loss: 2.4541e-04\n",
      "Epoch 172/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7408e-05 - val_loss: 3.7961e-04\n",
      "Epoch 173/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.5646e-05 - val_loss: 3.7333e-04\n",
      "Epoch 174/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8253e-05 - val_loss: 2.3300e-04\n",
      "Epoch 175/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.8868e-05 - val_loss: 2.2529e-04\n",
      "Epoch 176/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.7858e-05 - val_loss: 3.1906e-04\n",
      "Epoch 177/500\n",
      "1950/1950 [==============================] - 3s 1ms/step - loss: 7.4459e-05 - val_loss: 3.3510e-04\n"
     ]
    }
   ],
   "source": [
    "result = rnn.fit(X_train,\n",
    "                 y_train,\n",
    "                 epochs=500,\n",
    "                 batch_size=20,\n",
    "                 validation_data=(X_test, y_test),\n",
    "                 callbacks=[checkpointer, early_stopping],\n",
    "                 verbose=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "Training stops after 177 epochs and we reload the weights for the best model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "rnn.load_weights(rnn_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "The loss history shows how the model’s validation error converges to an error level that illustrates the noise inherent in predicting stock prices:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "loss_history = pd.DataFrame(result.history).pow(.5)\n",
    "loss_history.columns=['Training RMSE', 'Validation RMSE']\n",
    "loss_history.plot(logy=True, lw=2);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "## Evaluate model performance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {}
   },
   "source": [
    "The following charts illustrate the out-of-sample forecast performance that generally track the index development in 2018 well with a test RMSE of 0.015 on the rescaled price series. The test IC is 95.85%. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "def eval_result():\n",
    "    test_predict = pd.Series(rnn.predict(X_test).squeeze(), index=y_test.index)\n",
    "    train_predict = pd.Series(rnn.predict(X_train).squeeze(), index=y_train.index)\n",
    "    rmse = np.sqrt(mean_squared_error(test_predict, y_test))\n",
    "    return test_predict, train_predict, rmse"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "test_predict, train_predict, rmse = eval_result()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 2201 entries, 2018-01-02 to 2017-12-29\n",
      "Data columns (total 2 columns):\n",
      "prediction    2201 non-null float32\n",
      "data          2201 non-null object\n",
      "dtypes: float32(1), object(1)\n",
      "memory usage: 43.0+ KB\n"
     ]
    }
   ],
   "source": [
    "predictions = (test_predict.to_frame('prediction').assign(data='test')\n",
    "               .append(train_predict.to_frame('prediction').assign(data='train')))\n",
    "predictions.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 2201 entries, 2010-04-06 to 2018-12-31\n",
      "Data columns (total 3 columns):\n",
      "SP500         2201 non-null float64\n",
      "prediction    2201 non-null float32\n",
      "data          2201 non-null object\n",
      "dtypes: float32(1), float64(1), object(1)\n",
      "memory usage: 60.2+ KB\n"
     ]
    }
   ],
   "source": [
    "results = sp500_scaled.join(predictions).dropna()\n",
    "results.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "corr = {}\n",
    "for run, df in results.groupby('data'):\n",
    "    corr[run] = df.SP500.corr(df.prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [],
   "source": [
    "sp500_scaled['Train Prediction'] = pd.Series(train_predict.squeeze(), index=y_train.index)\n",
    "sp500_scaled['Test Prediction'] = pd.Series(test_predict.squeeze(), index=y_test.index)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training Error: 0.0076 | Test Error: 0.0150\n"
     ]
    }
   ],
   "source": [
    "training_error = np.sqrt(rnn.evaluate(X_train, y_train, verbose=0))\n",
    "testing_error = np.sqrt(rnn.evaluate(X_test, y_test, verbose=0))\n",
    "print('Training Error: {:.4f} | Test Error: {:.4f}'.format(training_error, testing_error))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "pycharm": {}
   },
   "outputs": [
    {
     "data": {
      "image/png": "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xdu3bx/Nmze/uwMhhBBCFHM1a9ZErVazZs0aAM6fP0/37t05fvw4X375JW+99RZt2rTh9ddfp0WLFhw7dgyNRoNKpbplS/qdaNOmDUuXLsVqtaIoCl9//fVt/UYQQhQcaUEXohT63//+x/z583nsscfQaDSYzWY6duzIiy++SHZ2NpMnT6ZHjx5YLBbatGnDiBEjbrlPDw8P5s+fz5QpU1i0aBFWq5WXXnqJpk2bsmfPHud6r7zyCs8//zx6vR5fX1/uvfdeEhISAMfote+//z4Wi8W5frly5fjggw945513MBqNqFQqpk2bRvXq1fnjjz8K/uAIIYQQxYSHhwcLFixg6tSpfPzxx1itVl599VUaNWpEjRo12LdvH926dcPLy4uQkBAGDRqESqXioYceYsCAAcyfP/+6gVNvdA86wOeff37LeF544QWmT59Oz549sVqtREZGOgelE0IUDZVd+osKIYQQQgghhBAuJ13chRBCCCGEEEKIYkAKdCGEEEIIIYQQohiQAl0IIYQQQgghhCgGpEAXQgghhBBCCCGKASnQhRBCCCGEEEKIYqBETLMWExODp6dnge/XZDIVyn7dlRzPgifHtGDJ8Sx4ckwLVmEdT5PJRGRk5F3to7C+i4uaO35m3S1nd8sXJGd3ITmXbLf7XVwiCnRPT08iIiIKfL+xsbGFsl93Jcez4MkxLVhyPAueHNOCVVjHMzY29q73UVjfxUXNHT+z7pazu+ULkrO7kJxLttv9LpYu7kIIIYQQQgghRDFQagr06dOnEx0dzcMPP8yDDz5IdHQ0I0eOzNc+EhMT2bp163XLBwwYwNmzZwH466+/ePrpp4mOjqZPnz589NFHt73/hIQEBg4cyMCBA3n99dcxGo0ATJw4kd69exMdHU10dDTZ2dl5ttuxYwe9e/emX79+zJ07N89zBoOBHj168PvvvwNw5MgRoqKiGDZsmHP/H330EYcPH779AyGEEEIIIYQQosiViC7ut2Ps2LEArFy5klOnTjF69Oh872PXrl0kJibSrl27Gz6flpbG6NGjmTdvHmFhYdhsNp5//nm+++47+vbte8v9T58+nccff5yuXbuydOlSlixZwvDhw4mNjeXzzz/H39//htvNmDGDuXPnUq1aNfr370+3bt2oUaMGAJMmTUKt/vs6y4oVK5g6dSrbt2/n999/p169eiQl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T4UQeOutt/DII48gKysLHh4ecsVUDGf9zMjIQGlpKYqKijB37lykpKRwOL8Nzno6efJkNDQ0oK2tDT09PTh27BgmTJggV1RFcNbPgIAAeHt7Q61Ww8vLCxqNBpcvX5YrquKNHz8eTU1N6OjowLVr11BTU4OIiAi5YylOZGQkqqqqAPzzS6SoqKh++w8cOAC73Y7W1lbY7XYEBQUhKirK8X2HDx9W1HODlJq1Wi0qKytRVFSETZs2YcKECS43nP8/Us/xDz/8gOLiYhQVFeHBBx+UI/qASVnL3qo/rk5KzYcOHcL69euxbds2TJkyRa7okg20Zq1Wiz179qCoqAhFRUUICAhQzHAOSDvHSn6OHgg3IYYbwcK9AAAEz0lEQVT3xxfb7XZkZmaioaEBQghs2LABJpMJwcHBeP7551FSUoLvvvsOQggsXrwYs2bNkjuyy3PWU7vdjmXLliE8PNxx/LJly7jAdOJW12iv/Px8jBo1CvPnz5cxrTLcqqeVlZXYvn07AGD27NlYtGiRzIld2636mZeXh19//RXu7u6IjIxERkYG/xb9Npw9exbLli1DSUkJKioqcOXKFSQmJmLfvn0oLCyEEAJxcXFITk6WO6ridHd3w2Aw4MKFC1CpVMjNzcXo0aORk5OD2bNnQ6vVIj8/HyaTCXa7HR999BGmTp2KlpYWrFy5Et3d3fD390dubi4CAgLkLue2SK25143XoxJIqTciIgJPPfUUxo4d63hH+fHHH8d7770nczXOSVnLXrx4EQaDARaLBSNHjkRubi58fX3lLuW2San5lVdewbVr1xx3yIWEhCArK0vmSm7fYGeWZ555Br/99ptM6QdOSr0dHR1YuXIlLly4AE9PT2RnZ+OBBx6Qu5Q7btgP6ERERERERERKMOxvcSciIiIiIiJSAg7oRERERERERC6AAzoRERERERGRC+CATkREREREROQCOKATERERERERuQBPuQMQkeswGo2orq6Gu7s73NzckJ6ejuLiYvz5558IDAwEANhsNqxZswYTJ07EunXrUFdXBz8/PwDA5s2bcf36dXz44Ye4evUqxowZg40bN8LHxwclJSX49ttv4enpiaVLl2LGjBlylkpERERE5HL4b9aICABw+vRprFy5Ejt37oSbmxvq6+thMBgQFhaGl156CdHR0QCAqqoqlJaWoqCgAPPnz0dhYSGCgoIcP2fdunUICwtDbGwsjEYj1Go1YmJikJqairKyMlitVuh0OpSVlUGtVstVLhERERGRy+Et7kQEAAgKCkJrayt27dqFc+fOYdKkSdi1a1e/4zo7O+Hr6wu73Y6mpiasWrUKSUlJjmNra2sxbdo0AEB0dDSqq6tx/PhxREREQK1WQ6PRIDg4GKdOnRrS+oiIiIiIXB1vcSciAP8M6Fu2bEFxcTEKCwvh7e2N9PR0AMAnn3yCrVu3wt3dHWPGjMHy5ctx5coVLFiwAK+//jpsNhsWLlyIyZMnw2w2Q6PRAAD8/PzQ1dXVZ1vvdrPZLEudRERERESuigM6EQEAmpqa4O/vj40bNwIA/vjjDyxatAiPPfYYli9f7rjFvVfvUO7j4wMAePLJJ3Hq1Cn4+/vDYrHA29sbFosFI0aMcGzrZbFY+gzsRERERETEW9yJ6F9//fUXMjMzYbVaAQAhISHQaDTw8PC46fF///03dDodbDYbrl+/jrq6Ojz66KOIjIxEVVUVAMBkMiEqKgparRa1tbWwWq3o6upCY2MjQkNDh6w2IiIiIiIl4DvoRAQAePHFF9HY2Ij4+Hj4+vpCCIGMjAz8/PPPNz1+/PjxePnll5GQkACVSoVXX30VEydOxNKlS2EwGFBSUoKRI0ciNzcXvr6+0Ov10Ol0EEIgPT0dXl5eQ1whEREREZFr46e4ExEREREREbkA3uJORERERERE5AI4oBMRERERERG5AA7oRERERERERC6AAzoRERERERGRC+CATkREREREROQCOKATERERERERuQAO6EREREREREQu4H/j2qRrQDhTawAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1008x504 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig=plt.figure(figsize=(14,7))\n",
    "ax1 = plt.subplot(221)\n",
    "ax2 = plt.subplot(222)\n",
    "ax3 = plt.subplot(223)\n",
    "ax4 = plt.subplot(224, sharex = ax2, sharey=ax2)\n",
    "\n",
    "sp500_scaled.loc['2015':, 'SP500'].plot(lw=4, ax=ax1, c='k')\n",
    "sp500_scaled.loc['2015':, ['Test Prediction', 'Train Prediction']].plot(lw=1, ax=ax1, ls='--')\n",
    "ax1.set_title('In- and Out-of-sample Predictions')\n",
    "\n",
    "sns.scatterplot(x='SP500', y='prediction', data=results, hue='data', ax=ax3)\n",
    "ax3.text(x=.02, y=.95, s='Test IC ={:.2%}'.format(corr['test']), transform=ax3.transAxes)\n",
    "ax3.text(x=.02, y=.87, s='Train IC={:.2%}'.format(corr['train']), transform=ax3.transAxes)\n",
    "ax3.set_title('Correlation')\n",
    "ax3.legend(loc='lower right')\n",
    "\n",
    "sns.distplot(train_predict.squeeze()-y_train.squeeze(), ax=ax2)\n",
    "ax2.set_title('Train Error')\n",
    "ax2.text(x=.03, y=.9, s='Train RMSE ={:.4f}'.format(training_error), transform=ax2.transAxes)\n",
    "sns.distplot(test_predict.squeeze()-y_test.squeeze(), ax=ax4)\n",
    "ax4.set_title('Test Error')\n",
    "ax4.text(x=.03, y=.9, s='Test RMSE ={:.4f}'.format(testing_error), transform=ax4.transAxes)\n",
    "\n",
    "fig.tight_layout()\n",
    "fig.savefig('images/rnn_sp500_regression', dpi=300);"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "318.55px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
